读取关联数据(HealthCorrelation) PRO
Scripting 应用支持通过全局 API Health.queryCorrelations() 查询 HealthKit 中的相关健康数据。相关数据用于表示一组相互关联的健康样本,例如:
- 一次血压测量(包含收缩压和舒张压)
- 一次食物摄入记录(包含热量、蛋白质、碳水等)
本文将介绍如何读取相关数据并提取其中的样本信息。
什么是 Correlation(相关数据)?
Correlation 是将多个健康样本组合成单个事件的数据结构。支持的类型包括:
"bloodPressure":包含两个数量样本:bloodPressureSystolic(收缩压)和bloodPressureDiastolic(舒张压)"food":可包含多个营养类样本,如dietaryEnergyConsumed(摄入热量)、dietaryProtein(蛋白质)、dietaryCarbohydrates(碳水化合物)等
每个 Correlation 包含以下信息:
- 类型(如
"bloodPressure"、"food") - 开始/结束时间
- 元数据(可选)
- 相关的多个样本(QuantitySample 或 CategorySample)
API 用法
参数说明
示例:读取血压记录
示例:读取食物摄入记录
如何访问样本
每个 HealthCorrelation 实例中包含以下数组:
quantitySamples:所有数量样本(可含 cumulative / discrete 类型)cumulativeQuantitySamples:仅累积样本discreteQuantitySamples:仅离散样本categorySamples:分类样本(某些类型支持)
你可以通过 .quantityType 和 .quantityValue(unit) 读取每个样本的具体数值。
错误处理
小结
读取 HealthKit 中的 Correlation 数据的步骤如下:
- 使用
Health.queryCorrelations(type, options)进行查询; - 遍历返回的
HealthCorrelation列表; - 使用
.quantitySamples访问每个相关样本; - 使用
.quantityValue(unit)获取数值。
该方法适用于读取复合型健康数据(如血压或饮食记录),适合用于统计分析或健康日志记录。
